Теория коинтеграции

Ключевые концепции теории коинтеграции впервые были сформулированы Granger(1983) и Engle (1987). В 2003 году работа Granger, Engle и были оценена Нобелевской премией по экономике.

Определение 1.

Пусть \(x_{t}\)- однородно нестационарный временной ряд. Будем говорить, что \(x_{t}\) принадлежит классу \(I(1)\), если его разности \[\Delta x_{t}=x_{t}-x_{t-1}\] является стационарным (принадлежит классу \(I(0)\)).

Определение 2

. Пусть \(x_{t}\)- однородно нестационарный временной ряд. Будем говорить, что \(x_{t}\) принадлежит классу \(I(d)\), если его разности \[\Delta x_{t}=x_{t}-x_{t-1}\] является рядом из класса \(I(d-1)\). Пусть \(y_{t}- n\)-мерный временной ряд \[y_{t}=(y_{1,t},...,y_{n,t})′\] такой, что каждая из его компонент \(y_{k,t}k=1,...,n\) взятая в отдельности представляет собой ряд из класса \(I(1)\).

Определение 3.

Компоненты этого ряда называют коинтегрированными, если существует их нетривиальная линейная комбинация \(a′y_{t}\), которая является стационарной (принадлежит классу \(I(0)\)).

Пример.

Пусть \(\epsilon_{t,1}\) и \(\epsilon_{t,2}\) два независимых в совокупности процесса белого шума. Процесс \(y_{t,2}\) такой, что \[y_{t,2}=y_{t-1,2}+\epsilon_{t,2}\]

а процесс \(y_{t,1}\) \[y_{t,1}=\gamma y_{t,2}+\epsilon_{t,1}\]

Проверим, что это процессы из \(I(1)\). Действительно \[\Delta y_{t,2}=y_{t,2}-y_{t-1,2}=y_{t-1,2}-y_{t-1,2}+\epsilon_{t,2}=\epsilon_{t,2}\]

а следовательно \(\Delta y_{t,2}∈I(1)\)
\[\Delta y_{t,1} = \gamma y_{t,2}+\epsilon_{t,1}-\gamma y_{t-1,2}-\epsilon_{t-1,1}=\] \[\gamma (y_{t,2}-y_{t-1,2})+\epsilon_{t,1}-\epsilon_{t-1,1} = \gamma \epsilon_{t,2}+\epsilon_{t,1}-\epsilon_{t-1,1}\]

что также является стационарным процессом. Рассмотрим вектор a вида \(а=(1,-\gamma )\) \[y_{t,1}-\gamma y_{t,2} = \gamma y_{t,2}+\epsilon_{t,1}-\gamma (y_{t-1,2}+\epsilon_{t,2})\] \[= \gamma (y_{t,2}-y_{t-1,2})+\epsilon_{t,1}-\gamma \epsilon_{t,2}\] \[= \gamma \epsilon_{t,2}+\epsilon_{t,1}-\gamma \epsilon_{t,2}=\epsilon_{t,1}\] Что естественно является стационарным процессом. Таким образом процессы \(y_{t,1}\) и \(y_{t,1}\) коинтегрированы. Естественно в определении 3 коинтегрированный вектор не является единственным. Если \(а\) - вектор коитегрирования,то \(ba\), где \(b\) некоторая константа также является коинтегрирущим вектором. Однако, если многомерный вектор \(y_{t}\) содержит более, чем две компоненты, то могут сосуществать несколько линейно независимых векторов \(a_1..,a_{h}\) такие, что линейные комбинации этих векторов с \(y_{t}\) будут давать стационарные процессы

Определение 4.

Пусть \(y_{t}\) есть \(n\)-мерный процесс такой, что каждая из его компонет есть процесс из \(I(1)\). Предположим, что существует матрица A размера \((n×h)\) такая, что: - столбцы ее линейно независимы; - \(A′y_{t}\) представляют собой \(h<n\) процессов из \(I(0)\); тогда будем говорить, что процессы из \(y_{t}\) коинтегрированы порядка \(h\).

Вернемся к рассмотрению примера.Положим \(e_{t,2}=\epsilon_{t,2}\), а \(e_{t,1}=\gamma \epsilon_{t,2}+\epsilon_{t,1}\).Тогда правую часть уравнения для \(\Delta y_{t,1}\) можно переписать следующим образом : \[\Delta y_{t,1} = \gamma \epsilon_{t,2}+\epsilon_{t,1}-\epsilon_{t-1,1}=e_{t,1}-(e_{t-1,1}-\gamma e_{t-1,2})= (1-B)e_{t,1}+\gamma Be_{t,2}\]

Тогда в новых обозначениях выражения для \(\Delta y_{t,1}\) и \(\Delta y_{t,2}\) можно записать в операторной форме \[\begin{equation*}\left[ \begin{matrix}\Delta y_{t,1}\\\Delta y_{t,2}\end{matrix}\right]= \Psi(B)\left[ \begin{matrix}e_{t,1}\\ e_{t,2}\end{matrix}\right]\end{equation*}\] где \[\begin{equation*}\Psi(B)=\left[ \begin{matrix}1-B&\gamma B\\ 0&1\end{matrix}\right]\end{equation*}\] Отсюда модель векторной авторегрессии для \(\Delta y_{t,1}\) и \(\Delta y_{t,2}\) ,если бы оно существовало, имело бы следующий вид \[\Phi(B)\Delta y_{t}=e_{t}\]

где \(\Phi(B)=Ψ^{-1}(B)\). Но матрица \(Ψ(B)\) имеет единичный корень. Действительно, ее определитель при \(B=1\) равен нулю \[\begin{equation*}\Psi(1)=\left[ \begin{matrix}0&\gamma 1\\ 0&1\end{matrix}\right]\end{equation*}\] Следовательно оператор скользящего среднего не обратим. Отсюда не существует оператора конечного порядка типа авторегрессии для \(\Delta y_{t}\). Но если мы слегка изменим определение векторной авторегресси и позволим вхождение туда не только приращений, но и значений самих \(y_{t-k}\), но только с некоторой задержкой \(k>0\), то стационарное представление для \(\Delta y_{t}\) найти довольно легко. Действительно, возвратившись к начальному представлению \(\Delta y_{t}\) через шум вида \(\epsilon_{t,1}\) и \(\epsilon_{t,2}\),получим \[\begin{equation*}\left[ \begin{matrix}\Delta y_{t,1}\\\Delta y_{t,2}\end{matrix}\right]= \left[ \begin{matrix}-1&\gamma 1\\ 0&0\end{matrix}\right]\left[ \begin{matrix}y_{t-1,1}\\ y_{t-1,2}\end{matrix}\right]+\left[ \begin{matrix}\gamma \epsilon_{t,2}+\epsilon_{t,1}\\ \epsilon_{t,2}\end{matrix}\right]\end{equation*}\] Этот пример нам показал, для коинтегрированных систем авторегрессионное представление для \(\Delta y_{t}\) в многомерном случае должно включать в себя члены вида \(Gy_{t-1}\)

Соотношение для коррекции ошибки в коинтегрированных системах

Хотя векторная авторегрессионная модель для приращений \(\Delta y_{t}\) не может быть формой представлением коинтегрированный систем, то для самих \(y_{t}\) это вполне возможна, только естественно (так как компоненты \(y_{t}\) из \(I(1)\)) это будет нестационарная модель например порядка \(p\). \[y_{t}=\alpha+\Phi_1y_{t-1}+...+\Phi_{p}y_{t-p}+\epsilon_{t}\] или в операторной форме

\[\Phi(B)y_{t}=\alpha+\epsilon_{t}\]

где \(\Phi(B)\)- оператор нестационарной векторной авторегрессии вида \[\Phi(B)=1-\Phi_1B-...-\Phi_{p}B^{p}\]

нестационарность означает, что определитель следующей матрицы равен нулю при \(B=1\) \[|1-\Phi_1-...-\Phi_{p}|=0\]

Выражение для \(y_{t}\) можно в данном случае эквивалентно переписать другим образом, которое и является наиболее общей формой представления коинтегрированных систем \[y_{t}=\zeta_1\Delta y_{t-1}+...+\zeta_{p-1}\Delta y_{t-p+1}+\alpha+\rhoy_{t-1}+\epsilon_{t}\]

где \[\rho=[\Phi_1+...+\Phi_{p}]\] \[\zeta_{s}=-[\Phi_{s+1}+...+\Phi_{p}]\] при \[s=1,...,p-1\] Вычитая \(y_{t-1}\) из обеих частей получим \[\Delta y_{t} = \zeta_1\Delta y_{t-1}+...+\zeta_{p-1}\Delta y_{t-p+1}+\alpha+\zeta_0y_{t-1}+ε_{t}\] (1) где \[\zeta_0 = \rho-I_{n}=-(I_{n}-Φ_1-...-Φ_{p})=-Φ(1)\]

Теперь предположим, что мы работаем с коинтегрированной системой порядка \(h<n\). Т.е. существует матрица \(A\) размера \((n×h)\) такая , что: - столбцы ее линейно независимы; - \(A′y_{t}\) представляют собой \(h<n\) процессов из \(I(0)\); Тогда последнее представление для \(\Delta y_{t}\) можно переписать так \[\Delta y_{t}=\zeta_1\Delta y_{t-1}+...+\zeta_{p-1}\Delta y_{t-p+1}+\alpha-GA′y_{t-1}+ε_{t}\] или вот так \[\Delta y_{t}=\zeta_1\Delta y_{t-1}+...+\zeta_{p-1}\Delta y_{t-p+1}+\alpha-Gz_{t-1}+ε_{t}\]

где \(z_{t-1}=A'y_{t-1}\) вектор из \(h\) стационарных процессов, а матрица \(G\) такая, что

\(GA′=-\zeta_0\). Эти последние два выражения и называют представлением коррекции ошибки.

Моделирование коинтегрированной системы на R

Нам необходимо задать модель вида \[\Phi(B)y_{t}=\alpha+\epsilon_{t}\] где \(\Phi(B)\)- оператор нестационарной векторной авторегрессии вида \[\Phi(B)=1-\Phi_1B-...-\Phi_{p}B^{p}\]

library(urca)
## Warning: package 'urca' was built under R version 3.2.4
library(egcm)
## Warning: package 'egcm' was built under R version 3.2.5
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: xts
## Loading required package: TTR
## Warning: package 'TTR' was built under R version 3.2.5
library(mAr)
## Loading required package: MASS
#Set unstable Vector AR(2) model X = A(1)*X(t-1)+A(2)*X(t-2)+E
#Set A(1) matrix(4,4)
Phi1 <-          c(0.25,0.2,    0.1,    0)
Phi1 <- rbind(Phi1,c(0,  0.2,   0.3,    0))
Phi1 <- rbind(Phi1,c(0,  0,     0.5,  0))
Phi1 <- rbind(Phi1,c(0,  0,     0,  0.5))
#Set A(2) matrix(4,4)                      
Phi2 <-          c(0.25,  0.1,  0.1,    0)
Phi2 <- rbind(Phi2,c(0,     0.4,    0.1,    0))
Phi2 <- rbind(Phi2,c(0,       0,  0.5,  0))
Phi2 <- rbind(Phi2,c(0,       0,    0,0.5))
Phi1+Phi2
##      [,1] [,2] [,3] [,4]
## Phi1  0.5  0.3  0.2    0
##       0.0  0.6  0.4    0
##       0.0  0.0  1.0    0
##       0.0  0.0  0.0    1
Phi <- cbind(Phi1,Phi2)
Phi
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## Phi1 0.25  0.2  0.1  0.0 0.25  0.1  0.1  0.0
##      0.00  0.2  0.3  0.0 0.00  0.4  0.1  0.0
##      0.00  0.0  0.5  0.0 0.00  0.0  0.5  0.0
##      0.00  0.0  0.0  0.5 0.00  0.0  0.0  0.5

вектор \(\alpha\) и ковариационная матрица \(\Omega=cov(\epsilon_t,\epsilon_t')\)

w<-c(0,0,0,0)
C  <- rbind(c(4,0,0,0),c(0,1,0,0),c(0,0,1,0),c(0,0,0,4))

Проверим нестационарность заданной модели Для этого мы сформируем из матриц \(\Phi_1,\Phi_2\) матрицу \(F\) ,как в прошлой лекции и вычислим ее собственные значения.

I <- diag(1,4,4)
Zero <- diag(0,4,4)
IZ <- cbind(I,Zero)
F <- rbind(Phi,IZ)
F
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## Phi1 0.25  0.2  0.1  0.0 0.25  0.1  0.1  0.0
##      0.00  0.2  0.3  0.0 0.00  0.4  0.1  0.0
##      0.00  0.0  0.5  0.0 0.00  0.0  0.5  0.0
##      0.00  0.0  0.0  0.5 0.00  0.0  0.0  0.5
##      1.00  0.0  0.0  0.0 0.00  0.0  0.0  0.0
##      0.00  1.0  0.0  0.0 0.00  0.0  0.0  0.0
##      0.00  0.0  1.0  0.0 0.00  0.0  0.0  0.0
##      0.00  0.0  0.0  1.0 0.00  0.0  0.0  0.0
eval <- eigen(F,only.values= TRUE)
modev <- Mod(eval$values)
barplot(modev,col = "blue",main = " Abs value of eigen values")
abline(h=1,col = "black")

Два собственных значения по модулю равны 1, следовательно ряд нестационарен.

Другой и более простой способ проверки. Убедимся, что определитель матрицы \[|1-\Phi_1-...-\Phi_{p}|=0\] равен нулю. Это будет означать что \(B=1\) является корнем уравнения

\[1-\Phi_1B...-\Phi_{p}B^p=0\]

D<- I-Phi1-Phi2
D
##      [,1] [,2] [,3] [,4]
## Phi1  0.5 -0.3 -0.2    0
##       0.0  0.4 -0.4    0
##       0.0  0.0  0.0    0
##       0.0  0.0  0.0    0
det(D)
## [1] 0

Итак условия нестационарности выполнены приступаем к моделированию

data<-  mAr.sim(w,Phi,C,N=300)
## Warning in mAr.sim(w, Phi, C, N = 300): unstable AR model
data<- as.matrix(data)
matplot(data,main="Simulated Time Series",col = c("blue","red","green","magenta"),type = "l",lty=1,lwd = 2)

Оценка модели коинтеграции

Сначала идет 2-х шаговый МНК

1.1 Оценки параметров множественной регрессионной модели связи \(\Delta y_{t}\) с \(\Delta y_{t-1},\Delta y_{t-2},...\Delta y_{t-p+1}\)

\(\Delta y_{t}=\pi+\Pi_1\Delta y_{t-1}...+\Pi_{p-1}\Delta y_{t-p+1}+u_{t}\)

1.2 Оценки параметров множественной регрессионной модели связи
\(y_{t}\) с \(\Delta y_{t-1},\Delta y_{t-2},...\Delta y_{t-p+1}\)

\(y_{t}=\theta+\Lambda_1\Delta y_{t-1}...+\Lambda_{p-1}\Delta y_{t-p+1}+v_{t}\)

2.1 Здесь вычисляется ковариационные матрицы остатков

\(\Sigma_{vv}={cov(v_{i},v_{j});i,j=1,...,n}\)

\(\Sigma_{u u }={cov(u_{i},u_{j});i,j=1,...,n}\)

\(\Sigma_{u v}={cov(u_{i},v_{j});i,j=1,...,n}\)

\(\Sigma_{vu}=Σ_{u v}′\)

И затем находят собственные значения \(\lambda_1₁,...,\lambda_{n}\) матрицы

\(\Sigma = \Sigma_{vv}^{-1}\Sigma_{u v}\Sigma_{u u}^{-1}\Sigma_{u v}\)

которые упорядочивают по убыванию \(\lambda_1>...>\lambda_{n}\). Полученные собственные значения впоследствии будут использоваться для проверки гипотез о порядке коинтеграции.

3.Пусть \(a_1,...,a_{h}\) первые \(h\) собственных векторов, отвечающие соответсвующим собственным значениям\(\lambda_1>...>\lambda_{n}\),нормализованные так, чтобы

\(a_{i}′\Sigma_{vv}a_{j}=1\)

Составим из них матрицу \(A=[a_1₁,...,a_{h}]\)

Тогда оценкой максимального правдоподобия для \(\zeta_0\) будет

\(\zeta_0=\Sigma_{uv}AA′\)

оценками максимального правдоподобия для \(\zeta_{i} i=1,...,p-1\) будут

\(\zeta_{i}=\Pi_{i}-\zeta_0\Lambda_{i}\)

а оценкой максимального правдоподобия для \(\alpha\) будет

\(\alpha=\pi-\zeta_0\theta\)

Итак мы нашли значения оценок модели коинтеграции

Проверка гипотез о коинтеграции

В качестве основной рассмотрим гипотезу о том, что существует в точности \(h\) коинтеграционных соотношений. Это эквивалентно тому, что \(\zeta_0\) может быть записана в форме

\(\zeta_0=-BA′\)

где матрица \(B\)- размера \((n×h)\), a \(A′(n×h)\) . При этом предположении максимальная величина, которую может достичь логарифм функции правдоподобия задается выражением

\[L^{∗}=-((Tn)/2)log2π-((Tn)/2)-(T/2)log|\Sigma_{uu}|-(T/2)\Sigma_{i=1}^{h}log(1-λ_{i})\]

Теперь рассмотрим альтернативную гипотезу, что существует \(n\) коинтеграционных соотношений, где \(n\)- размерность вектора \(y_{t}\). Это означает, что любая линейная комбинация \(y_{t}\) является стационарной. Значения логарифма функции правдоподобия в данном предположении будет \[L_{А}^{∗}=-((Tn)/2)log2π-((Tn)/2)-(T/2)log|Σ_{uu}|-(T/2)∑_{i=1}ⁿlog(1-λ_{i})\] Тест отношения правдоподобия для проверки основной гипотезы, против данной альтернативы \[L_{А}^{∗}-L₀^{∗}=(T/2)∑_{i=h+1}ⁿlog(1-λ_{i}) \]

Распределение \(λ_{i}\) , а следовательно и \(L^{∗}\) имеет сложный вид, поэтому значения статистик для проверки гитотез о порядке коинтеграции затабулированы в таблицах. Таблицы довольно обширные зависят от уровня значимости, порядка коинтеграции, длины выборки. Таблицы получены С.Йехансоном методом статистического моделирования. с именем Йехансона и связано соответствующего названия метода ca.jo в R из библиотеки urca.

Проведем оценку параметров и проверку статистических гипотез в R для смоделированных ранее 4 рядов.

vecm <- ca.jo(data, ecdet = "none",type="eigen",K=3,spec="longrun")
summary(vecm)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: maximal eigenvalue statistic (lambda max) , with linear trend 
## 
## Eigenvalues (lambda):
## [1] 0.193840427 0.132591282 0.027067285 0.009821668
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 3 |  2.93  6.50  8.18 11.65
## r <= 2 |  8.15 12.91 14.90 19.19
## r <= 1 | 42.25 18.90 21.07 25.75
## r = 0  | 64.00 24.78 27.14 32.14
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##           X1.l3       X2.l3     X3.l3     X4.l3
## X1.l3  1.000000  1.00000000  1.000000 1.0000000
## X2.l3  3.069131 -1.52170051  0.868366 0.5823304
## X3.l3 -4.118293  0.54273290 -1.815991 2.9463012
## X4.l3 -0.144223 -0.08097939  1.149661 0.4673575
## 
## Weights W:
## (This is the loading matrix)
## 
##            X1.l3       X2.l3        X3.l3         X4.l3
## X1.d -0.08587950 -0.29754140 -0.011434289  0.0012321600
## X2.d -0.08282705  0.11410801 -0.003695802  0.0002683833
## X3.d -0.03017377 -0.03093582  0.016266577 -0.0024929832
## X4.d  0.01205376 -0.01510447 -0.026764753 -0.0063260519
vecm@cval
##          10pct  5pct  1pct
## r <= 3 |  6.50  8.18 11.65
## r <= 2 | 12.91 14.90 19.19
## r <= 1 | 18.90 21.07 25.75
## r = 0  | 24.78 27.14 32.14
vecm@teststat
## [1]  2.931455  8.149784 42.246764 63.995652
outmat <-rbind(vecm@cval[,2],vecm@teststat)
legends <- c("critical values","statistics")
barplot(outmat, main="Statistics vs Critical Value for 5% test ",legend.text = legends,beside = TRUE, col=c("red","blue"), las=2)

Проверка гипотезы о порядке коинтеграции показывает, что порядок коинтеграции в нашей смоделированной 4-мерной системе векторов \(y_t, h\le2\).

Очень полезен и визуальный спобоб проверки гипотезы о порядке \(h\) коинтеграции, основанный на определении. \(a\)- коинтегрирующий вектор, если линейная комбинация \(a′y_{t}\),должна быть стационарной (принадлежать классу \(I(0)\)). Вот и посмотрим

Линейная кобинация с первым вектором

  z1 <- data%*%vecm@V[,1]
  matplot(z1,type ="l",col = "blue",lwd = 2,main ='z1= y*a1')

на вид стационарна.Линейная кобинация со вторым вектором

  z2 <- data%*%vecm@V[,2]
  matplot(z2,type ="l",col = "blue",lwd = 2,main ='z2= y*a2')

также стационарна на вид.Линейная кобинация с третьим вектором

  z3 <- data%*%vecm@V[,3]
  matplot(z3,type ="l",col = "blue",lwd = 2,main ='z3= y*a3')

Уже содержит явный тренд и не следовательно является стационарной. Таким образом наша гипотеза о порядке коинтеграции \(h=2\) не отвергается и в результате визуального теста.

Посмотрим на результатах оценки модели к реальным данным- фьючерсам на индексы РТС и Ruble/USD,Brent.

library(urca)
rtsData <- read.csv("c:/Shurd/ALection/RublerRTSBrent.csv")
rts <- rtsData[,2:4]
dim(rts)
## [1] 382   3
matplot(rts[,1],lwd=2,main="RTS",type="l",col="blue")

matplot(rts[,2],lwd=2,main="Ruible/USD",type="l",col="blue")

matplot(rts[,3],lwd=2,main="BRENT",type="l",col="blue")

vecm <- ca.jo(rts, ecdet = "none",type="eigen",K=3,spec="longrun")
summary(vecm)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: maximal eigenvalue statistic (lambda max) , with linear trend 
## 
## Eigenvalues (lambda):
## [1] 0.068547244 0.012498484 0.003111798
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 2 |  1.18  6.50  8.18 11.65
## r <= 1 |  4.77 12.91 14.90 19.19
## r = 0  | 26.91 18.90 21.07 25.75
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##              RTS.l3      Si.l3   Brent.l3
## RTS.l3        1.000   1.000000    1.00000
## Si.l3      1184.003   1.265989    1.79123
## Brent.l3 567023.688 -23.448800 -627.22827
## 
## Weights W:
## (This is the loading matrix)
## 
##                RTS.l3         Si.l3      Brent.l3
## RTS.d    3.244002e-05 -3.136059e-02  7.518170e-03
## Si.d    -8.377620e-05  1.027574e-02 -5.194228e-03
## Brent.d -2.410370e-08 -8.347087e-06  1.026592e-05
vecm@cval
##          10pct  5pct  1pct
## r <= 2 |  6.50  8.18 11.65
## r <= 1 | 12.91 14.90 19.19
## r = 0  | 18.90 21.07 25.75
vecm@teststat
## [1]  1.181210  4.766777 26.912717
outmat <-rbind(vecm@cval[,3],vecm@teststat)
legends <- c("critical values","statistics")
barplot(outmat, main="Statistics vs Critical Value for 5% test ",legend.text = legends,beside = TRUE, col=c("red","blue"), las=2)

Из последней картинки следует, что порядок коинтеграции равен 1.

Собственные значения

\(\lambda_1,\lambda_2,\lambda_3\)

vecm@lambda
## [1] 0.068547244 0.012498484 0.003111798

Коинтегрирующие вектора \(a =(a_1,... ,a_3)\) .

a<- vecm@V[,1:3]
a
##              RTS.l3      Si.l3   Brent.l3
## RTS.l3        1.000   1.000000    1.00000
## Si.l3      1184.003   1.265989    1.79123
## Brent.l3 567023.688 -23.448800 -627.22827

Оценки константы

vecm@GAMMA[,1]
##       RTS.d        Si.d     Brent.d 
##  710.148369 7916.698886    2.114813

Оценки матрицы \(\zeta_1\)

vecm@GAMMA[,2:4]
##               RTS.dl1        Si.dl1    Brent.dl1
## RTS.d   -1.570941e-01 -0.2794702809 -15.64334974
## Si.d     2.942576e-03 -0.0855494017 -15.75743173
## Brent.d -5.551113e-05 -0.0001457525  -0.06175868

Оценки матрицы \(\zeta_0\)

vecm@GAMMA[,5:7]
##               RTS.dl2        Si.dl2    Brent.dl2
## RTS.d   -0.0918991177 -0.2488321328 -16.10989723
## Si.d     0.0740497855  0.0944815226   8.56665672
## Brent.d -0.0001315527 -0.0003132918  -0.03885834

Напоследок приведу пример, где показывается, что, несмотря на внешнее сходство, регрессия и коинтеграция это разные вещи.

Известен следующий факт: Пусть имеется двухмерный процесс \(X_t=(X_{t,1},X_{t,2}),t = 1,...,N\) Оценка регрессии вида \[X_{t,1}= aX_{t,2}+\epsilon_t\] одного вектора относительного другого дает нам вектор \((1,-\tilde a)\), который является состоятельной оценкой вектора коинтеграции

Пусть процесс \(X_t=(X_{t,1},X_{t,2}),t = 1,...,N\) есть процесс векторной авторегрессии второго порядка \[X_t=\Pi_1X_{t-1}+\Pi_2X_{t-2}+\mu+\epsilon_t\] где матрица \(\Pi_1\) \[\Pi_{1,1}^{(1)} = 0.924,\Pi_{2,1}^{(1)} = -0.134\] \[\Pi_{2,1}^{(1)} = 0.001,\Pi_{2,2}^{(1)} = 0.986\], матрица \(\Pi_2\) \[\Pi_{1,1}^{(2)}= 0.047,\Pi_{2,1}^{(2)}= 0.403\] \[\Pi_{2,1}^{(2)}= 0.002,\Pi_{2,2}^{(2)}= -0.044\]

вектор \(\mu\) \[\mu=(0.073,-0.004)\], \[\epsilon_t=(\epsilon_{t,1},\epsilon_{t,2})\] \[E[\epsilon_{t,i}]= 0,D[\epsilon_{t,i}] = 20\], \[cov(\epsilon_{t,1},\epsilon_{t,2}= 0)\]

В следующем shiny application попробуем определить оценку \(\tilde a\) компоненту вектора \(a=(1,-\tilde a)\) вручную и сравнить с оценкой через регрессиию и через коинтеграцию.